The demand to stream multimedia (e.g., audio and video) data for live events and for file-based video-on-demand (VoD) is increasing as the content base and the available bandwidth increase. Contemporary video compression techniques mean that strict timing constraints are imposed on the delivery of the data to client devices. An inability to meet those timing constraints can result in reduced quality when the data is reconstructed and displayed.
The timely delivery of data can be affected by server performance (among other things). If, for example, a streaming server accepts too many client requests and cannot adequately handle the load, then the quality of service can degrade across all of the client sessions, or some subset of those sessions may fail completely. Thus, it is important to prevent the server from exceeding its saturation point—the point at which the load on the server exceeds the capability of the server to successfully serve all of its clients.
The size of a saturating load depends on the detailed characteristics of the various types of content being served to the various clients, such as the specific combination of live and file-based streams, their relative popularity, and their respective bit and packet rates, as well as the client count and the types of client requests. Conventional server-side measurements of server performance may not be sufficient for predicting when a server will be unable to maintain high quality service to its clients. For instance, the temporal variance observed in server-side measurements, such as load average measurements, can make shorter term measurements ineffective. However, longer term measurements that may reduce the temporal variance are inconsistent with the desire to quickly predict performance in the rapidly changing loading environment in which streaming servers operate.
Client-side measurements may also be ineffective in predicting server performance, because those measurements may be obscured due to the variance caused either by artificially smoothed transmission (e.g., packet smoothing) or by bursty transmission (e.g., packet blitting).
Also, information such as a list of client sessions loading the server may be hard to get due to privacy and security concerns. Even if such information is available, it is difficult to translate it into information that is useful for predicting server performance.
In summary, a method and/or system of evaluating and predicting the performance of streaming media servers, considering the variety of usage patterns and the dynamic nature of server workloads, would be valuable.